home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
macros
/
latex209
/
contrib
/
zero
/
zero.sty
< prev
Wrap
Text File
|
1993-11-07
|
5KB
|
113 lines
% LaTeX documentstyle option to start numbering at zero (where appropriate)
%
% Tom Verhoeff
% Department of Mathematics and Computing Science
% Eindhoven University of Technology
% The Netherlands
% E-mail: <wstomv@win.tue.nl>
%
\def\filedate{19 June 1991}
%
\typeout{Documentstyle option `zero': start numbering at zero. <\filedate>}
%
% USAGE
%
% Include `zero' in the list of documentstyle options.
% This initializes all existing counters such that numbering, where appropriate,
% starts at zero (instead of one). Numbering still starts at one for
% (i) footnotes on the title page,
% (ii) parts,
% (iii) footnotes in minipages,
% (iv) enumerated lists nested two levels or deeper,
% since these use a non-arabic numbering format.
% Furthermore, newly defined counters will be initialized such that numbering
% starts at zero. When you change the numbering format of a counter to
% non-arabic, it is advisable to change the initial value to one as well.
%
% To change the initial value of counter <cntr> use
% \initcounter{<cntr>}{<value>}
% This also resets the counter to its (new) initial value.
% For example, page numbering can be start at one by \initcounter{page}{1}.
% N.B. All counters, except page for page numbering, have a value ONE LESS
% than the next number produced. So to start numbering at one for enumerated
% lists at the outermost level use \initcounter{enumi}{0}.
%
% To reset counter <cntr> to its (current) initial value use
% \resetcounter{<cntr>}
%
% IMPLEMENTATION DETAILS
%
% New macros: \initcounter, \resetcounter
%
% The macro \initcounter{<cntr>}{<value>} records <value> as the initial
% value of the numbering counter <cntr>, and resets <cntr>.
% The initial value of <cntr> is stored in the control sequence \ci@<cntr>.
% The macro \resetcounter{<cntr>} resets <cntr> to its initial value \ci@<cntr>.
%
% The macros \@stpelt, \@definecounter, \usercounter, \pagenumbering,
% \maketitle, and \@iminipage have been redefined to use \initcounter or
% \resetcounter.
%
% The macro \appendix needs no revision, even though it sets the counters
% (chapter,) section and subsection to 0. The section counter (cq. chapter
% counter for report and book) is printed in Alpha and consequently should
% indeed be reset to 0. The subsection counter (and section counter for
% report and book) is reset appropriately whenever the section (cq. chapter)
% counter is stepped. Only if sectioning is done incorrectly,
% e.g. by starting the appendix with a subsection, then numbering may also
% be done incorrectly.
%
\def\resetcounter#1{\setcounter{#1}{\csname ci@#1\endcsname}}
\def\initcounter#1#2{% set initial value for counter
\global\expandafter\let\csname ci@#1\endcsname#2\relax
\resetcounter{#1}}
\let\@stpelt\resetcounter
\def\@definecounter#1{%
\expandafter\newcount\csname c@#1\endcsname%
\initcounter{#1}{\m@ne}%
\expandafter\gdef\csname cl@#1\endcsname{}%
\@addtoreset{#1}{@ckpt}%
\expandafter\gdef\csname p@#1\endcsname{}%
\expandafter\gdef\csname the#1\endcsname{\arabic{#1}}}
\def\usecounter#1{\@nmbrlisttrue\def\@listctr{#1}\resetcounter{#1}}
\def\pagenumbering#1{\resetcounter{page}%
\gdef\thepage{\csname @#1\endcsname\c@page}}
\let\@ldmaketitle=\maketitle% save old \maketitle macro
\def\maketitle{%
\setcounter{footnote}{0}% because \thanks uses symbolic footnote marks
\@ldmaketitle%
\resetcounter{footnote}}
\def\@iminipage[#1]#2{\leavevmode \@pboxswfalse
\if #1b\vbox
\else \if #1t\vtop
\else \ifmmode \vcenter
\else \@pboxswtrue $\vcenter
\fi
\fi
\fi\bgroup
\hsize #2\textwidth\hsize \columnwidth\hsize
\@parboxrestore
\def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\resetcounter{mpfootnote}
\let\@footnotetext\@mpfootnotetext
\let\@listdepth\@mplistdepth \@mplistdepth\z@
\@minipagerestore\global\@minipagetrue %% \global added 24 May 89
\everypar{\global\@minipagefalse\everypar{}}}
%
% Reinitialize already existing counters to -1 so as to start counting at 0,
% EXCEPT FOR:
% * page numbers, because the page count has no lag. Reinitialized at 0.
% * part numbers, minipage footnote numbers, and enumerated environments
% nested 2 or deeper, because they do not use the arabic format.
% Reinitialized at 0.
%
{\def\@elt#1{\initcounter{#1}{\m@ne}}\cl@@ckpt}
\initcounter{page}{\z@}
\initcounter{part}{\z@}
\initcounter{mpfootnote}{\z@}
\initcounter{enumii}{\z@}
\initcounter{enumiii}{\z@}
\initcounter{enumiv}{\z@}
%
% End of file zero.sty